Time-based modeling

ABSTRACT

A computer-implemented modeling, or planning, system provides a graphical user interface including a timeframe. Under user control, instances of component objects representing modeling entities can be displayed with respect to the timeframe for the input of time-related properties for the component objects. The component objects provide calculations in response to the time-related properties on properties of the component object for deriving an output comprising a time-series of output values. A resulting report can be generated based on the time-series of output values. The displayed instances of the component objects can be directly manipulated by the user in order to define the time-related properties. The direct graphical representation facilitates planning operations and enables accurate, rapid and easily understandable development of plans. Multiple scenarios can easily be generated using the system. A revision mechanism facilitates the return to a scenario modeled earlier.

BACKGROUND OF THE INVENTION

[0001] This invention relates to computer implemented modeling systemsand methods for modeling time-dependent scenarios, systems andprocesses, and to tools for such systems and methods. The modeling mayrelate to planning activities for the generation of a time-based model,or plan, but could relate more generally to the generation of models forsimulations, emulations, control structures, etc.

[0002] An example of a tool that can be used for modeling time-dependentsituations is the well-known spreadsheet type of application for acomputer system. An example of such a tool is Microsoft Excel programmarketed by Microsoft Corporation. (Microsoft is a registered trademarkof Microsoft Corporation). A spreadsheet is based on the concept ofcells. The function of each cell in a two dimensional array of rows andcolumns is used to define inputs, calculations and outputs. Aspreadsheet can thus be used for deriving a final report as defined bythose inputs, calculations and outputs. For example, a typicalapplication of a spreadsheet is to derive reports for financialplanning. However, it can also be used for modeling the operation of,for example, a chemical process, or the operation of a complex system,for example the environmental controls of a building. In a such a case,the data to be processed in the spreadsheet need not relate to financialvalues, but could relate to the properties of the process, or of theenvironment of the building, by way of example only.

[0003] Although spreadsheets can be used for planning events that arerelated to time, spreadsheets are not ideally adapted for this task.This is as a result of the rigid way in which spreadsheets are definedin terms of the cells and the interaction between cells. For example, acolumn in a spreadsheet could be given an attribute relating to time.Individual cells in respective rows could then be given individual setsof data and calculations could be defined for the cells to produce aresult that was time-related. If then, however, it were desired toinvestigate alternative scenarios with respect to time, it would benecessary to redefine or change the time-designation of the columns, thedata in the cells and the interaction between the cells for the newscenario. The process of modifying the columns can be very complicated,requiring inordinate care to ensure that the designations of therespective cells correctly reflect the intended relationships. Indeed,in normal operation of a spreadsheet it is all too easy to damage amodel. It can be seen, therefore, that a spreadsheet is not an idealtool for planning.

[0004] Users of spreadsheets will be aware that using spreadsheets forplanning can rapidly become very unwieldy due to the multiplicity ofspreadsheets that may need to be generated, and the difficulty inrelating one spreadsheet to another. There is, moreover, the difficultyof ensuring that the individual spreadsheets are accurate, due to thefact that a single error in a single cell, in a single column or row,can cause the generated results to be wrong. With a large number ofcells and complex interactions between the cells, it can be verydifficult indeed to ensure that all the entries in, and definitions of,the cells are correct. The difficulty in verifying the accuracy andcorrectness of the spreadsheet is at least partially a result of the rowand column format of a spreadsheet, which is not intuitive.

[0005] A further difficulty with the operation of spreadsheets is theneed to define a time-granularity for the calculations. If it is desiredto model the same events on a different time-granularity, it will thenbe necessary completely to redefine the spreadsheet (effectivelystarting again from the beginning). In this, it is also to be noted thatthere is normally an upper limit to the number of columns in thespreadsheet. Accordingly, for a given granularity in time, only arelatively limited number of time periods can be modeled.

[0006] Critical path analysis techniques have been employed for thegeneration of time-based plans. Various specialist tools can be employedto carry out a critical path analysis, but they tend to be very complexand to require the knowledge of specially trained operators.

[0007] Planning tools are known that enable a graphical representationof planning activities and the relationship between activities to beplanned. An example of such a tool is Microsoft Project, marketed byMicrosoft Corporation. However, such planning tools effectively providea computer-based alternative to the conventional wall charts that havebeen, and are still, used for planning purposes. Typically, they willnot be used in isolation, but rather in combination with a spreadsheetto provide a full analysis of a plan. As a result, conventional planningtools of this type do not provide a solution to the problems describedabove.

[0008] Accordingly, an object of the present invention is to provide amodeling, or planning tool and a method and system incorporating such atool that avoids, or at least mitigates, the problems associated withprior art approaches to planning and modeling in a computer system.

SUMMARY OF THE INVENTION

[0009] Particular and preferred aspects of the invention are set out inthe accompanying independent and dependent claims. Combinations offeatures from the dependent claims may be combined with features of theindependent claims as appropriate and not merely as explicitly set outin the claims.

[0010] In accordance with one aspect of the invention, there is provideda computer-implemented modeling system. A graphical user interfacemechanism is configured to display a timeframe on a computer displaymedium. The graphical user interface mechanism is further configuredselectively to display under user control, a representation of aselectable instance of at least one component object for a modeledentity. The representation of that component object instance asdisplayed with respect to the timeframe represents time-relatedproperties for the component object instance. The component objectincludes a calculating engine defining the functionality of the modeledentity. The calculating engine is configured to respond to thetime-related properties for the selected component object instance toperform calculations on at least one component object property forderiving an output comprising a time-series of output values. A resultmechanism derives at least one result value based on the time-series ofoutput values derived by the selected component object instance.

[0011] The invention employs a combination of a graphical user interfaceto define time-related properties, or parameters, of an object for amodeling entity in combination with an object including a computingengine (for example code or methods for implementing a process) whichdefines the functionality of the modeling entity and produces atime-series of output values in response to the time related properties.An embodiment of the invention is not merely a replacement for aconventional spreadsheet or planning tool, but rather employs a new andinnovative approach to performing tasks previously performed by suchtools, but without the disadvantages of those tools.

[0012] Hierarchical relationships can be established between componentobjects by means of properties defining links between the componentobjects. A plurality of user selectable object types can be provided,with each object type being for a respective modeling entity type andcomprising a calculating engine defining a functionality specific to therespective modeling entity type. Examples of entity types are for abusiness group, a sales unit, an administration units, etc. in afinancial or business planning application. In another application, forexample for modeling the environmental controls of a building, theycould relate to fuel supply, user occupancy unit, lighting, heating,air-conditioning,, insulation, and other parameters of the overallsystem.

[0013] In a preferred embodiment of the invention, the displayedinstance of a component object can be directly manipulated by the userin order to define the time-related properties. Alternatively, or inaddition, the display of the instance of the object can be derived inresponse to separate input of time-related properties, for example bymeans of user entry of those properties in a data entry field.

[0014] Irrespective of the user definition of the instance of the objectwith respect to the timeframe, the representation of that instance ofthe object with respect to the timeframe facilitates the appreciation ofthe time-relationship of and the interdependency between componentobjects. Accordingly, more reliable entry of the time-related propertiesof a component object is possible than with a prior art approach.

[0015] The component object is automatically responsive to the input ofthe time-related properties, as represented by the display of theinstance of the object with respect to the timeframe, to conductcalculations on properties of the component object for automaticallygenerating an output as a time-series of the output values. This mannerof input is particularly advantageous where, during derivation of themodel, the lifespan and/or granularity of the time-related propertiesis/are changed, for example to investigate alternative scenarios.

[0016] The instance of a component object with respect to the timeframecan represent a lifespan with a start time and an end time for thecomponent object and/or the granularity of the component object. In apreferred embodiment of the invention, the displayed instance of thecomponent object with respect to the timeframe represents calculationdatum points for respective output values of the time-series of outputvalues for the component object. The time-series of output valuesincludes at least one value associated with a timing derived from therelationship between the displayed object representation and thetimeframe. In this manner, the visual representation can clearlyindicate to the user the points in time for which output values in thetime-series of output values is to be generated. Consequently, theaccurate input of datum points is facilitated.

[0017] In a presently preferred embodiment of the invention, thetimeframe defines a timeline indicating time values (e.g. dates ortiming offsets). The timeline extends in a first direction (e.g., a rowdirection) with a plurality of spaced object lines parallel to thetimeline. One or more displayed instances of the object may be definedin one or more object lines with the alignment of extremities of thecomponent object(s) with respect to the timeline representing the startand end times for the component object(s).

[0018] Overlapping of the displayed instances of component objectswithin an object line can be prevented in order to preserve a desiredtime order for those component objects. Parent-child relationships canbe derived between instances of component objects on respective objectlines. In this manner a hierarchy of objects can be defined for modelinga scenario. The component objects contain links to other componentobjects for defining the relationship between component objects for oneobject line and/or for parent-child relationships.

[0019] The displayed representation could take alternative forms. Forexample, in a preferred embodiment of the invention a displayed instanceof a component object is in the form of a bar, optionally with markersfor the calculation datum points. Alternatively, the displayedrepresentation could be in the form of a series of markers for thecalculation datum points, with the markers being joined to represent thelifespan of a component object.

[0020] One object can provide the time-series of values, or a set ofobjects can each provide one or more of values of the time-series ofoutput values.

[0021] A parent component object is preferably arranged to holdproperties of any component object that is a child thereof. The child isthen able to access properties from the parent. The properties canactually be stored in the parent object, or could alternatively bedefined by a link within the object to properties held outside theobject. In this manner, a component object can be responsive to arequest for output from the result mechanism to obtain, from its parentobject, properties for calculating an output comprising the time-seriesof output values, the output values being determined at the datum pointsdefined by the time-related properties for the component object.

[0022] A root object can be defined, with the user-defined hierarchy ofcomponent objects being dependent therefrom, for modeling a scenario.The graphical user interface mechanism can be responsive to the rootobject and the defined series of the inter-object relationships todisplay a representation of the hierarchy of component objects. Thelinks between objects can be displayed between respective displayedinstances of the component objects. Selective expansion, or contraction,of displayed sub-hierarchies of component object instances can beprovided. Also, a displayed instance of a component object may beselectively enabled and disabled. Optionally, the selective expansion,or contraction, of displayed sub-hierarchies of component objectinstances can also be provided.

[0023] To facilitate the selection of object types by the user, thegraphical user interface can be configured to display a plurality ofpredefined object types selectable by the user for positioning withrespect to the timeframe, the displayed object types automaticallyadopting a time-based representation with respect to the timeframe onbeing superimposed on the timeframe. The graphical user interface canalso be configured to display an input field for inputting properties ofa component object. The representation displayed for an object can bearranged to reflect the state of that object, as to whether it is in anenabled, disabled selected, error, or other state.

[0024] A model may be formed of a plurality of component models, eachcomponent model comprising one or more component objects. A property maybe in the form of an array of values. Also, a property may besub-divided into sub-properties.

[0025] Where reference is made to the properties of a component object,these can include one or more of the following (by way of examplesonly): a value; an array of values; a time-series of values; a state; aBoolean; a string; a timing; a duration; a link; a bit map; or a binarystream.

[0026] The graphical user interface can be configured to display aplurality of icons corresponding to user selectable component objecttypes. Each component object type can be for respective modeling entitytype and can comprise a calculating engine defining a functionalityspecific to the respective modeling entity type. The icons can beselectable by a user for positioning a representation of a componentobject instance with respect to the timeframe. The graphical userinterface can also be configured to display a data field for inputtingproperties of a component object.

[0027] In a preferred embodiment of the invention, the result mechanismis operable to generate a report, for example a financial report,including at least one time-series of output values. The report can bedisplayed on the display medium, printed on a printer, stored in memory,or exported, as required. In another embodiment, the result mechanismcould, however, be arranged to provide at least one control value forcontrolling the operation of a modeled system.

[0028] The modeling system can be operable to model alternativescenarios as part of a single model. For example, a component object canbe configured to record respective properties for plural scenarios.

[0029] In accordance with another aspect of the invention, there isprovided a revision mechanism. The revision mechanism records revisionsof the model including the definition of a hierarchy of revisionentries, each revision entry including pointers to adjoining entries inthe hierarchy and including a definition of a previous value of aproperty and an current value of a property. In responsive to selectionof a revision of the model of the scenario, the revision mechanism isable to access the linked series of revision entries selectively toremove and to reintroduce the selected revision for the current versionof the model. The revision system provides a very flexible and reliableway of deactivating and reactivating changes to investigate differentcombinations of properties.

[0030] In accordance with another aspect of the invention, there isprovided a computer system comprising a processor, storage, a displaydevice, at least one user input device and a program-implementedmodeling tool. The modeling tool comprises a graphical user interfacemechanism configured to display a timeframe on a computer displaymedium. The graphical user interface mechanism is also configuredselectively to display, under user control, a representation of aselectable instance of at least one component object for a modeledentity. The representation of that component object instance asdisplayed with respect to the timeframe represents time-relatedproperties for the component object instance. The component objectincludes a calculating engine defining the functionality of the modeledentity. The calculating engine is configured to respond to thetime-related properties for the selected component object instance toperform calculations on at least one component object property forderiving an output comprising a time-series of output values. A resultmechanism is operable to derive at least one result value based on thetime-series of output values derived by the selected component objectinstance.

[0031] In accordance with a further aspect of the invention, there isprovided a carrier medium carrying a computer program-implementedmodeling tool. The modeling tool comprises graphical user interfaceinstructions configured to display a timeframe on a computer displaymedium. The graphical user interface instructions are further configuredselectively to display, under user control, a representation of aselectable instance of at least one component object for a modeledentity. The representation of that component object instance asdisplayed with respect to the timeframe represents time-relatedproperties for the component object instance. Component objectdefinition instructions define the component object for a modeledentity. The component object comprises a calculating engine defining thefunctionality of the modeled entity. The calculating engine isconfigured to respond to the time-related properties for the selectedcomponent object instance to perform calculations on at least onecomponent object property for deriving an output comprising atime-series of output values. Result generation instructions areconfigured to derive at least one result value based on the time-seriesof output values derived by the selected component object instance.

[0032] The carrier medium can be computer readable storage medium, forexample a magnetic, optical, magneto-optical or any other form ofcomputer readable storage medium. Alternatively, it could comprise atelecommunications transmission medium such as an electrical, optical orelectromagnetic communications medium.

[0033] In accordance with another aspect of the invention, acomputer-implemented planning system comprises a plurality of selectableobject types. Each object type defines a type of planning entity andincludes a calculating engine for defining the functionality of theplanning entity. At least a selected one of the object types includesdefinitions of time dependent properties and a calculating engineoperable to perform time-dependent operations in response to propertyvalues for the time-dependent properties. A control mechanism defines anobject hierarchy in response to user input, which user input includesspecifications of property values for the time dependent properties. Thecontrol mechanism generates outputs in the form of time-series of valuesin response to calculations performed by the calculating engines of theobjects.

[0034] The invention also provides carrier medium carrying an objectdefinition for a computer-implemented planning system. The objectdefines the functionality of a planning entity. It includes a definitionof a time dependent property and a definition of time-dependentoperations configured to respond to input property values for thetime-dependent properties to produce a time-series of output values.

[0035] In accordance with a further aspect of the invention, there isprovided a computer-implemented modeling method. The method includes:

[0036] displaying a timeframe on a computer display medium;

[0037] displaying, under user control, a representation of a selectableinstance of at least one component object for a modeled entity, therepresentation of that component object instance as displayed withrespect to the timeframe representing time-related properties for thecomponent object instance;

[0038] causing the component object to be responsive to the time-relatedproperties for the component object instance to perform calculations forthe modeled entity on component object properties for deriving an outputcomprising a time-series of output values; and

[0039] producing at least one result value based on the time-series ofoutput values derived by at least one component object.

[0040] An embodiment of the invention provides a flexible and powerfulplanning and modeling tool that is easily understood by users withoutneeding extensive training. It enables the generation of multiplereports in an easy and efficient manner, enabling the user toinvestigate changes to the model or plan and directly to be able to seethe results of those changes. It greatly enhances a modeling or planningprocess, saving costs and producing better results than withconventional tools.

BRIEF DESCRIPTION OF THE DRAWINGS

[0041] Exemplary embodiments of the present invention will be describedhereinafter, by way of example only, with reference to the accompanyingdrawings in which like reference signs relate to like elements and inwhich:

[0042]FIG. 1 represents a computer system incorporating the presentinvention;

[0043]FIG. 2 is a block diagram illustrating components of the system ofFIG. 1;

[0044]FIG. 3 illustrates a planning screen of an embodiment of thepresent invention;

[0045]FIG. 4 illustrates a screen showing an alternative representationof the information illustrated in the screen of FIG. 3;

[0046]FIG. 5 illustrates a revision list of an embodiment of theinvention;

[0047]FIG. 6 is a report screen of an embodiment of the presentinvention;

[0048]FIGS. 7A, 7B, 7C, 7D and 7E are representations of examples ofdifferent component objects;

[0049]FIG. 8 is a schematic overview of an embodiment of the invention;

[0050]FIG. 9 is a schematic representation of an object hierarchy of anembodiment of the invention;

[0051]FIG. 10 is a schematic representation of the generation of aparent-child relationship between objects;

[0052]FIG. 11 is a schematic representation of objects mutuallyexclusive in time;

[0053]FIG. 12 is a schematic representation of the communication betweenobjects via accounts;

[0054]FIG. 13 illustrates the timing of balancing entries in anembodiment of the invention;

[0055]FIG. 14 provides an overview of the generation of an object;

[0056]FIG. 15 represents a property entry window;

[0057]FIG. 16 represents an account entry window;

[0058]FIG. 17 represents a chart defining a hierarchy of accounts;

[0059] FIGS. 18 to 18C illustrate an object entry window;

[0060]FIG. 19 illustrates the structure of and relationship betweenparent and child objects;

[0061]FIG. 20 is a flow diagram giving an overview of the generation ofa model and the querying of the model for creating a report;

[0062] FIGS. 21 to 21E are a flow diagrams illustrating, in more detail,the querying of a model; and

[0063]FIG. 22 is a schematic overview of a revision mechanism.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0064]FIG. 1 is a schematic representation of a computer system 10 inwhich the present invention may be implemented. As shown in FIG. 1, thecomputer system 10 comprises a system unit 12, a display device 18 witha display screen 20, and user input devices, including a keyboard 22 anda mouse 24. A printer 21 is also connected to the system. The systemunit 12 comprises media drives, including and an optical disc drive 14and a floppy disk drive 16. A CD ROM 15 and a floppy disk 17 are alsoillustrated. A program for implementing the invention may be supplied ona media such as one or more CD ROMs and/or floppy disks. Also shown onFIG. 1 is a connection 26 to a network, for example to a local or widearea network and/or the Internet. A program for implementing the presentinvention could also he supplied on a telecommunication medium, such as,for example over a telecommunications line from a network and/or theInternet.

[0065]FIG. 2 is a schematic and simplified representation of anexemplary implementation of a computer system such as that shown inFIG. 1. As shown in FIG. 2, a processor (CPU) 30 is connected to a busstructure 38. Also connected to the bus structure 38, are read onlymemory 32 and random access memory 34. A display adapter 36 connects thedisplay device 18 to the bus structure 38. One or more user input deviceadapters 40 connect the user-input devices, including the keyboard 22and the mouse 24, to the bus structure 38. An adapter 41 for theconnection of the printer 21 may also be provided. One or more mediadrive adapters 42 can be provided for connecting the media drives, forexample the optical disk drive 14 and the floppy disc drive 16, to thebus structure 38. One or more telecommunications adapters 44 can beprovided for connecting the computer system to one or more networks. Thecommunications adapters 44 could include a local area network adapter, amodem, and/or an ISDN terminal adapter, etc., as required.

[0066] It will be appreciated that FIGS. 1 and 2 are schematicrepresentations of one possible implementation of a computer system. Itwill be appreciated, from the following description of an embodiment ofthe invention, that a computer system in which the invention could beimplemented may take many different forms. For example, rather thanbeing implemented in a stand-alone workstation as illustrated in FIGS. 1and 2, the invention may, for example, be implemented in another form ofcomputer system. Such a computer system could, for example, comprising acomputer server connected to one or more client stations via a localarea or other form of network, for example via an intranet or over theInternet.

[0067] Before describing details of the implementation of the presentinvention in a computer system as shown in FIGS. 1 and 2, variousaspects of the present invention will be described with reference toFIGS. 3-7, which illustrate screen shots from a presently preferredimplementation of the invention.

[0068]FIG. 3 illustrates a screenshot for a planning view. Thiscomprises four basic fields. A view selection field 52 comprises icons53, representative of different views that can be selected. This firstarea is present in all views. Selecting one of the icons 53 enables thedisplay of a corresponding view.

[0069] For the planning view, a second field forms a timeframe field 54.This includes the display of a timeframe 55, which will be described inmore detail in the following. A third, object selection, field 56displays a plurality of selectable objects (e.g., 100, 102, 104, 106).These will also be described in more detail below. A fourth, data field58 enables the input and the display of properties of selectableinstances of objects displayed in the timeframe field 54.

[0070] To illustrate the operation of an exemplary embodiment of theinvention, a simple planning operation will be illustrated withreference to FIG. 3. Assume a scenario in which it is desired to start anew division of a company for sales of a particular type. It may also bedesired to terminate the operation of a first division of that company.Although an example of operation relating to business planning isdescribed in the following, it will be appreciated that the inventioncan equally be used for planning all sorts of different activities,scenarios, and systems, including the control of technical processes andsystems.

[0071] The object selection field 56 contains icons for a number ofdifferent types of objects. Each of these object types is designed toperform a specific task. Each object includes a calculating engine(e.g., suitable methods, or code) for performing the appropriatecalculations needed for the operations represented by the objectconcerned. Thus, for example, a Loan object 103 contains the necessarycode for calculating a loan according to specified parameters, orproperties, including the start and finish dates, the interest rate(s)and the times at which interest is charged and/or repayments are made.As will be described in the following, the time-related properties canbe freely set in an embodiment of the invention, using the timeframefield 54.

[0072] In the present example, a simple, hypothetical, planningoperation is described for illustrative purposes only. It will beappreciated that in practice the present invention can be used for muchmore complex planning tasks, and not merely for financial planningtasks. In this simple example, various types of objects are used. AGroup object 100 defines the characteristics of a group of the company.A Sales object 101 defines the characteristics of sales for a product. ACost of Sales object 102 determines cost factors associated with thesale of the product. A Loan object 103 defines characteristics necessaryfor determining the financial implications of a loan and anAdministration object 104 models administration costs and. Icons forthese objects are held in the object selection field 56.

[0073] To start planning, a group object 100 is selected using the mouse24. The group object can be selected by clicking or dragged the objectto the timeframe field 54 where it is superimposed on the timeframe 55.The group object includes a calculating engine (i.e. code segments, ormethods) for defining the characteristics of a group of the company. Theselected object automatically expands to form an instance 68 of thatobject from a start time 82 until an end time 84 (i.e. for defining theduration, or lifespan, of the object).

[0074] In an embodiment of the invention a default extent of the objectis displayed, which can then be manipulated using conventional graphicaluser interface operations (e.g., using the mouse) to size and positionthe instance of the object with respect to the timeframe 55. Thus, thestart time 82 and end time 84 can be adjusted, as required, in orderthat the instance of the object extends from the desired start time tothe desired end time. The start and end times can also be changed byusing an entry box (not shown) selectable by means of the “General” tab110 in the data field 58.

[0075] The start and end times are automatically provided to theobject's calculating engine for performing the necessary calculations.The object itself also contains a default definition of the timings atwhich the calculations are to be performed (e.g., at each month end). Inorder that the user can readily be appraised of this, these timings areoptionally indicated to the user by the markings 86 shown on thebar-like representation of the object instance 68. The user may changethose timings by moving the markers within the representation of theobject instance 68 on the timeframe (using conventional mouseoperations), or using an entry box (not shown) selectable by means ofthe “General” tab 110 in the data field 58.

[0076] It will be noted that the instance 68 of the group object 100shows a name “Division 1”. This name can be entered using an entry box(not shown) selectable by means of the “General tab” 110 in the datafield 58. The cursor can be caused to jump to this field when an objectinstance is expanded on the timeframe 55 for the first time. On entry ofthe name “Division 1”, this is then displayed within representation ofthe object instance 68 in the timeframe field 54. Other properties ofthe “Division 1” object can be entered using entry boxes 114 under the“Data” tab 108 in the data field 58 (It should be noted that the entryboxes shown in FIG. 3 relate to the Sales object 70 for the Division 1object 68, to be described below).

[0077] It will be noted that the timeframe 55 comprises a timeline 60,which extends linearly (here in the row direction) and sets out thetimes for the timeline. In the present example, the timeline extends forseveral months starting from October 1998 and extending to January 2000.The scale of the timeline 60 can be freely changed to expand, orcontract, the representation of the timeline. Thus, for example, aperiod of days could be shown, or a period of several years could beshown, as desired. In the present implementation of the invention,timings to a granularity of one a day may be input and displayed.However, in other implementations the granularity could be much smallerand could define hours, minutes, seconds, microseconds, etc., or muchlarger and could define centuries, millennia, etc., as required, inorder to model a desired system or a set of activities.

[0078] Once the properties have been selected for the Division 1 object68, a Sales object is selected to define the sales for Division 1.Accordingly, a Sales object 102 is selected and is dragged so that itoverlies the Division 1 object instance 68. This operation enables thisinstance of a Sales object to be a child with respect to the Division 1object instance. The instance 70 of the Sales object can then be droppeddown below the Division 1 object instance 68 and a relation line 88 isdisplayed connecting the Division 1 object instance 68 to the salesobject instance 70 to specify that the latter is a child of the former.The cursor can be arranged to jump to an entry box under the “General”tab 100 where the name for the sales object (in the present instancesimply “Sales”) can be entered. The duration of the instance 70 of theSales object can be defined by adjusting the leading and trailing edgesoff that object. Properties of the Sales object instance 70 can beentered by means of entry boxes under the data tab 108.

[0079] It will be noted that the instance 70 of the Sales object is on arow separate from that of the Division 1 instance 68 of the groupobject. Each of the rows forms an object line 64 within which one ormore representations of object instances made be displayed. Where thelifespans of objects may overlap and/or there is a parent-childrelationship between the objects, then each of the object instances itwill be displayed on a separate object line. Where, however, it isdesired that the lifespan of objects should not overlap, then separateobject instances may be displayed on a single object line.

[0080] A similar process to that described above for establishing theSales object instance 70, may be employed for establishing a Cost ofSales object instance 72. It will be noted that the Cost of Sales objectinstance is defined as a child of the Division 1 object instance 68,rather than as a child of the Sales object 70. As will be describedlater, the Division 1 object 68 holds the properties and/or accounts (tobe explained later) of the Sales object 70 and the Cost of Sales object72.

[0081] Likewise, a similar process to that described above forestablishing the Sales object instance 70, may be employed forestablishing an Administration object instance 73. This is also definedas a child of the Division 1 object instance.

[0082] A similar process is then employed for establishing a Division 2object instance 74, with an associated sales object instance 76 and anassociated Cost of Sales object instance 78. It will be noted that thelifespans of the Division 2 object instance 74 and its children 76 and78 are different from those of the Division 1 object instance 68 and itschildren 70 and 72. It will further be noticed that a Loan objectinstance 80 is established as a child of the Division 2 object instance74. This Loan object instance models the cost of a loan for establishingDivision 2 of the company. The data field of FIG. 3 shows the expectedrevenue amounts 114 which have been entered as properties for the salesof Division 2. A graph showing the expected sales is also displayed at120 in the data field 58. A similar data field for the Loan objectinstance 80 could show the repayment amounts for a loan for establishingDivision 2 of the company and a corresponding graphical representation.As well as showing inputs, it could show process and outputs.

[0083] The time-related properties for the model are derivable directlyfrom the representation of the object instances within the timeframe 55.These time-related properties correspond to the timeline value on thetimeline 60 along the line orthogonal to the direction of the timeline60 and the object lines 64 (i.e. they correspond to the verticalcorrespondence between the ends 82/84 of the bars and/or the markers 86and the values displayed on the timeline 60 in the present example.These time-related properties are derived from values used to generatethe displayed image by the graphical user interface in accordance withconventional techniques. These values are, used, in an embodiment of theinvention, as input properties for the calculating engines of theobjects concerned. The objects are, accordingly, responsive to thevalues determining the display of the relevant object instancerepresentations to take those input values as the time-related inputproperties.

[0084] Various scenarios for the timing of the establishment of Division2 and/or the timing of the loan and/or the predictions for sales forDivision 1 and Division 2 can readily be established by simply movingthe boundaries of the object instances within the timeframe 55 and/or bymodifying the properties are presented within the data field 58. Theresulting changes cause changes to the values for generating thedisplayed image and are used by the calculating engine to modify thetimings of calculations for generating the tie series of output valuesdependent thereon.

[0085] Also, the properties can readily be changes within the data field58, for example by changing the numerical values of the properties inthe entry boxes, or by manipulating a graphical representation 120 ofthose properties using the mouse (e.g. by pinning values within thatgraphical representation).

[0086] The effects of the changes introduced by varying the propertiescan be viewed directly and in real time through means of a report screenas will be described later with reference to FIG. 6.

[0087] Before referring to FIG. 6, however, reference is made to FIGS. 4and 5. The screen shown in FIG. 4 gives an alternative representation ofthe information displayed in FIG. 3. This shows the hierarchy of theobject instances by means of a tree-like structure 136 within a firstfield 132. Also shown within the first field 132 is a tabularrepresentation 138 of the individual object instances showing the startdate, duration, end date, and frequency of the object instances, as wellas a representation 137 of the relative lifespans of the objectinstances. Various representations of properties 140 and 142 (herepayment and collection periods for the sales of Division 2) of theobject instances can be displayed within a second field 134.

[0088]FIG. 5 illustrates the display of a revision list 139. Therevision list shows all chances made to the plan and indicates in theleft hand column whether the revision is currently active, or not in thecurrent model. If a revision, illustrated by a given line in the tableis active, the box in the left-hand column will be checked. If it is notactive, then the box will not be checked. A revision can be removed fromthe model by selecting the line concerned and removing the check fromthe box. As a result any consequential changes are automatically made bythe system. Likewise, a revision currently not active can be reactivatedby selecting the appropriate revision line, whereby the revisionconcerned and any consequential revision changes will be effectedautomatically.

[0089] Where an object is deactivated, it still remains in the model,but the calculating engine is effectively turned off s that it has noteffect on the final result. As a consequence of this it is a simplematter to re-activate the object so that the object can once morecontribute to the overall result.

[0090] The displayed representations of the component objects can bearranged automatically to change their representation (e.g., by changinga displayed color or shade) according to the current state of the object(e.g., selected/non-selected, active, non-active, etc.) For example, itwill be noted in FIG. 3 that the displayed object instance 70, whichforms the item selected in FIG. 3, is displayed darker than the otherobject instances in that Figure.

[0091] Different representations of the objects are possible. Ratherthan a bar, a series of linked markers could be used, for example. Alsorather than positively specifying an area for the object, at least forsome objects the representation could be in the form of a mask thatdeselects everything apart from an area of interest, or alternativelydeselects an area of interest.

[0092]FIG. 6 illustrates a report 150, here a financial report, whichcould be selected by means of the reporting icon 53 in the viewselection field 52 of FIG. 3. This report provides data relating to dothe calculations performed by the objects of FIG. 3 in the form of atime-series of output values. Such a time a series of output valuescorresponds to an output which could, in principle, be generated from aspreadsheet. However, it will be appreciated from the above descriptionthat the method of generating such a report is much more straightforwardand much more understandable to a user that that which would be requiredusing a spreadsheet. Moreover, as a result of the ease with which inputparameters and properties of the objects may be changed, the effects ofchanging those properties can be viewed readily and in a user-friendlyand understandable manner. Through the use of the view selection icons53, it is possible to switch readily between the planning and reportviews to make changes and then to view the results of those changes.Also, through the use of a persistent revision mechanism to be describedlater, it is possible selectively to deactivate and to reactivate anydesired revision in a series of revisions. It also possible with onebasic model formed by the hierarchy of objects, to model many differentscenarios and to compare those scenarios.

[0093] As has been mentioned above, different types of objects, orobject classes, can be provided, with each object type representing adifferent type of modeled, or planning entity, which can be used tobuild a model, or plan. The modeled entities, fall into different typesor classes of elements which can be used to model the system in anyparticular application. In the business related application specificallydescribed herein, they relate to elements such as the business units(e.g. a group), sales, cost of sales, loan, administration cost andother elements. In another application, for example for modeling theenvironment of a building, they could relate to factors such as fuelsupply, heating, lighting, air-conditioning, user occupancy and othersuch elements as appropriate to the application concerned.

[0094] Each of the object types has method or procedures (thecalculating engine) configured to define the functionality of theobject. The object also contains definitions of the properties neededfor the calculations and data for those property definitions. At leastsome of these properties relate to time-related properties definingtimings for effecting the calculations to give the time-series of one ormore output values. Examples of such objects are represented in FIGS. 7Ato 7E.

[0095]FIG. 7A illustrates a displayed instance 601 of a Sales object 101and properties entered in entry boxes under the “Data” tab. Theproperties of an object may be divided in sub-properties, with the sumof the sub-properties forming the complete property. This isillustrated, by way of example, in FIG. 7A where a property (revenueamount) is sub-divided into revenue accounts for a number of individualoffices. It will also be seen that the property can be in the form of anarray of values (here two-dimensional), with time being one dimension inthe present instance. A sales object type can be used to model theincome received from sales. The entry of only simple properties isrequired, such as a number of items sold (for example, per month) thesale price of each item, and a period over which the sales performancesis to be monitored, as represented by the positioning of thecorresponding object instance on the timeline.

[0096]FIG. 7B illustrates a displayed instance 603 of a Loan object 103and the entry boxes under the “Data” tab which are awaiting entry of therelevant property information. It will be noted that a default interestrate period of 1 month is provided. A Loan object type can be used toprovide appropriate loan calculations requiring simple properties to bedefined such as an amount of a loan, an interest rate, and the term ofthe loan as represented by the positioning of the corresponding objectinstance on the timeline.

[0097]FIG. 7C illustrates a displayed instance 607 of an Opening Balanceobject and the entry boxes under the “Data” tab with various asset andliability properties already entered.

[0098]FIG. 7D illustrates a displayed instance 605 of an Inventoryobject 105 with the entry boxes under the “Data” tab awaiting entry ofthe relevant property information. It will be noted that a defaultperiod of one month has been set for the frequency at which calculationsare made.

[0099]FIG. 7E illustrates a displayed instance 606 of a Flex object 106with the entry boxes under the “Data” tab awaiting entry of the relevantproperty information. A flex object is used to provide modification ofthe results of objects and provides a flexible way of investigating theeffects of variations in the properties of the objects.

[0100] Some other examples of such object classes, or types, aresummarized below.

[0101] An Asset object type for property and/or equipment can be used todefine the financial value of the asset over time. Once again, simpleproperties need only be provided including an initial value of theasset, a rate of depreciation, and the length of ownership planned forthe asset in question as represented by the positioning of thecorresponding object instance on the timeline.

[0102] A Cost of Sales object type can be used to model the cost to theuser, as an amount of money per item, or as a percentage of sales made.Once again, the entry of simple properties is all that is required, suchas an amount, or a percentage and the duration of the period over whichthe cost is to be taken into account, as represented by the positioningof the corresponding object instance on the timeline.

[0103] An Administration cost object type allows modeling of overheadcosts by the entry of simple properties such as an amount and theduration of the period over which the costs are to be taken intoaccount, as represented by the positioning of the corresponding objectinstance on the timeline.

[0104] There now follows a description of an exemplary implementation ofthe modeling system described above.

[0105] As described above, the selection of individual objects from thevarious object types enables the generation of a hierarchy of objectinstances for planning and/or modeling. FIG. 8 is a schematic,functional, overview of an example of the invention from one aspect. Inessence, all embodiment of the invention, can provide a controlmechanism 485 for creating and managing an object hierarchy 160 of timedependent objects, which forms a model of the time dependent system, inresponse to user input from an input mechanism 480 and requests foroutput via an output mechanism 490. The input and output mechanism 480and 490 cooperate, as represented by the line joining them, in that theoutput mechanism 490 includes the display of representations of objectinstances and the input mechanism 480 used the display ofrepresentations of object instances to control the input of propertiesto the object instances. The results can be in the form of displayedand/or printed reports. The reports could also be exported (for exampleas a bitmap). Also the results could include control values forcontrolling a modeled system or process.

[0106] The displayed instances of the various component objects shown inFIG. 3 are directly associated with the actual component objectinstances which are generated by the underlying control mechanism 485,or object-oriented program operating environment on selecting thecreation of an instance of an object. The objects form a hierarchy bymeans of the links between those component objects. FIG. 9 illustrates ahierarchy 160 of objects with, at its root, a root object 165 for themodel. For the example shown in FIG. 3, a first family of objects isdefined with respect to the root object 165. This first family ofobjects includes a Division 1 object 168, which forms a child of theroot object 165, corresponding to the Division 1 object instance 68. ASales object 170 and a Cost of Sales object 172 and an Administrationobject 173 are defined as children of the Division 1 object 168 andcorrespond to the Sales object, the Cost of Sales object andAdministration object instances 70 and 72, respectively. A second familyof objects is also defined with respect to the root object 165. Thissecond family of objects includes a Division 2 object 174, which forms achild of the root object 165, corresponding to the Division 2 objectinstance 74. A Sales object 176, a Cost of Sales object 178 and a Loanobject 180 are defined as children of the Division 2 object 174 andcorrespond to the Sales object, the Cost of Sales object and Loan objectinstances 76 and 78 and 80, respectively.

[0107] The hierarchy of objects 160 shown in FIG. 9 is generatedautomatically by the system in response to the operations performed bythe user as described with reference to FIG. 3. This is the hierarchy ofobjects 160 shown in FIG. 9 forming the model on which planningscenarios may be investigated by adjusting the properties of theobjects. Each of the objects shown in FIG. 9 contains data, orreferences data, defining those properties. As mentioned above, a parentobject may also contain, or reference, the properties and/or accounts ofthe objects that form its children. This means that a child object isthen able to do obtain the properties and/or accounts of the otherobjects by querying its parent object.

[0108] As has been described with reference to FIG. 3, dragging anobject instance (e.g. object A shown in FIG. 10) on top of anotherobject instance (e.g., object B) within the timeframe field 55 in FIG. 3causes object A to be child of object B. In this manner, a parent childrelationship can readily be created for objects on respective objectlines. As also described with reference to FIG. 3, placingrepresentations of object instances side by side on one object line willprevent the objects from having coextensive lifetimes. Thus, forexample, shifting an object instance C to the right, as shown in FIG.11, will cause the adjacent object instance D to move to the right whenthose two object instances touch. These relationships are held withinthe objects by means of appropriate links between the objects via theparent(s). The various actions described above automatically cause themodification of the properties of the objects.

[0109] The power of an embodiment of the invention is the ability tomodel a system or activities from individual objects. Each objectdefines the necessary functionality for modeling an element of thatsystem or those activities, with the objects being assembled into anobject hierarchy defining that system or a combination of activities. Ashas already been indicated, the objects have an existence in “time”,that is the objects have a start and an end date, and performcalculations on the basis of time-related properties. In order togenerate a hierarchy, the objects also define links to other objects,and the calculated results of one object affect other objects.

[0110] Properties can be associated with various aspects of the objects,such as the start and end, the markers for the calculation datum points,the body of the object instances and also the links.

[0111] Indeed, the links could be defined separately to possessproperties. For example, for objects on one object line, a link betweenthe objects could define a degree of elasticity, or lack of elasticity,between those objects, or for example a minimum separation in time.Also, for hierarchical links, the properties could representinter-dependencies between the objects at either end of the link.

[0112] An embodiment of the invention is not an accounting system.However, it can be used to model an accounting system. It can also beused to model many different types of systems. However, in thefollowing, terminology taken from the accounting world is used todescribe aspects of an embodiment of the invention. For example, theterm “account” is used to define a repository for a time-series ofvalues, although the time-series of values may, or may not, relate tofinancial values. It could, by way of examples, relate to numbers ofemployees, or yields of a chemical process, or energy consumption valuesfor the environmental controls of a building.

[0113] At a conceptual level, the present embodiment of the inventionemploys a general ledger (GL). The concept of a general ledger, in themanner of a general ledger in a traditional accounting system, keepstrack of the current state (or value) of various accounts. The generalledger can be equated to a database containing time-series of valuesthat can be indexed or updated based on an account identity and a date.Conceptually, object communication within the modeling system iseffected through the general ledger, although in practice it is effectedvia the objects. The concept is that objects post values to the generalledger and then objects query the general ledger for the total valuesfor a given account on a given date. This concept also applies toreports, which obtain required values from the general ledger.Conceptually, therefore a report will query the general ledger for therequired values for a given date.

[0114] Although accounting terminology is employed here, it should beunderstood that the general ledger concept enables non-financial as wellas financial data values to be tracked. For example, if a report or anobject requires a number of staff working on a particular date, thereport or object would query the general ledger for the value concerned.The general ledger is organized as a hierarchy of accounts. Each accountcontains an array of values for a series of dates (that is a time-seriesof values for a given account). For example, it is possible to query thegeneral ledger for a value in a sales account on a particular day. Thereis a unique value for each account for a given day.

[0115]FIG. 12 is intended to represent the use of the general ledger(GL) concept 204 by the objects. As shown in FIG. 12, an object 200performs calculations on the basis of properties from property pages 202and/or previous results from the general ledger 204, and then postsresults to the general ledger 204. The results of the calculations canthen be queried by another, or by the same object from the generalledger 204. Although the general ledger is conceptually separate fromthe objects, in practice, in the present embodiment it is held by aproperty manager function within the objects, or the parents of theobjects in question. Thus, during the definition of an object, as wellas defining the calculations, or transactions, to be performed, theinput sources and output destinations for those calculations are alsodefined.

[0116] The nature of the accounts can be illustrated, for example, forfinancial transactions, where two posting dates, or dates on which thegeneral ledger of values will be increased, or decreased, can bedefined. These two dates can be defined as the accrual impact day andthe cash impact day. The accrual impact day is the date on which atransaction is recognized by the object (this would correspond to thedata that shows up on the income statement on the balance sheet). Thecash impact day is the date on which the cash from the transactionaffects the bank account and would show on the cash flow statement.Three accounts can be defined that are affected by a financialcalculation. They are an accrual account, a cash account, and holdingaccount. It is the accrual account that recognizes the occurrence of atransaction, but not necessary the receipt for payment. On the accrualimpact day the accrual account is increased. The cash account representshow much money is currently in the bank. On the cash impact day the cashaccount can be increased or decreased depending on the type oftransaction. The holding account represents the current amount of moneycurrently owed and owing by the object.

[0117] Thus, as already mentioned, even though an embodiment of thepresent invention is not an accounting system, the various transactionscan be described using accounting terminology, particularly in the caseof a financial application for the invention. For every financialcalculation, there are two transactions, each of which comprises twobalancing entries as represented in FIG. 13. The first transactionoccurs on the accrual impact day, when a transaction is recognized, butbefore the required sum is paid or received. On the accrual impact dayboth the accrual account and the holding account will be increased bythe transaction amount. The second transaction occurs on the cash impactday, when the required sum is received or paid. This amount is the sameas used for the first transaction. On the cash impact day the holdingaccount (as used on the first transaction) is decreased by theappropriate value and the cash account is increased or decreaseddepending on whether it is an incoming or outgoing amount. There aremultiple cash impacts with the total being equal to the firsttransaction.

[0118] As mentioned above, objects post values to the general ledger.The periods within which an object posts values to the general ledger isdetermined by several factors. The most important factor determiningwhen this occurs is the granularity, or object frequency, as mentionedwith reference to FIG. 3. This granularity can be set by the user andcan be based on several different periods, for example a selectablenumber of one or more days, weeks, months, quarters, years, orcombinations thereof, in the present embodiment. The relevant datumpoint at which the relevant calculations are made can be set to thestart or the end of a given period, or indeed at any selectable timewithin the period. Another factor which can be relevant to determiningthe timing of posting results is a delay property (e.g., acollection/payment term period in a financial application), which can beset depending upon the time it takes for the accounting value (e.g.,cash in a financial application) to actually arrive in the account aftera transaction is performed.

[0119]FIG. 14 provides an overview of a process for creating an object.The process essentially comprises two stages. The first stage is anobject definition stage. The second stage is an object build stage.

[0120] In the object definition stage, necessary inputs are supplied toa database. After the necessary accounts, properties, objectcalculations, and criteria have been defined and entered into thedatabase, the user then selects a build operation that initiates theautomatic build process. The build process analyses the access databaseand generates appropriate code. This code is then compiled to create anexecutable file that is registered with the operating system. The nexttime that the modeling system is run, the new executable is available inthe object selection field and the new object can be placed within thetimeframe field.

[0121] When performing calculations, the objects require access tocertain assumptions, or inputs. These assumptions have to be storedwithin the model. For example, an object for calculating salary expensesmight require the number of employees and the employees' annualsalaries. These assumptions are the properties mentioned earlier. Mostproperty values are set by the user when adding or modifying an objectwhen viewing a planning screen, for example as illustrated withreference to FIG. 3. When creating an object, the properties that can bechanged by the user are defined and a so-called property page is defined(see FIG. 15). The system also determines property values to be usedinternally for its calculations. For example, the present embodiment ofthe system sets a default duration, or lifespan, property for an objectto be the length of that object in days.

[0122]FIG. 15 is an illustration of a property entry window where a newproperty can be created and an existing property can be edited. Withreference to the various fields shown within the property entry window,the following items in particular are noted. The property ID is theidentity for the property. The caption is read only text seen in reportsand on the property page. The description gives more detail regardingthe intention of the property. The type can be one of, for example: avalue; an array of values; a time-series of values; a state; a Boolean;a string; a timing; a duration; a link; a bit map; a binary stream (orbinary large object (blob)). The property type determines how theproperty acts in the property page and the object calculations. If theproperty is a string list type, this is where the items in a string listare entered. The multiple item entry determines how a tally amount isgenerated for a property that includes sub-properties as described, forexample with reference to FIG. 7A. Where appropriate, the property canbe represented in a currency format or a percentage format by checkingthe appropriate boxes. Also, the property can be set as a globalproperty by checking the global property box.

[0123]FIG. 16 is an illustration of an account entry window where anaccount can be defined. With reference to the various fields shownwithin the account entry window, the following items in particular arenoted. The account name is the name given to the account. Account IDsused elsewhere in the system (for example in object calculations andreports) are created by concatenating account prefixes specified in arelations page associated with the account name. The account name isunique. The caption is read only text seen in reports and other userareas. The description gives more detail regarding the intention of theaccount. The report order determines the sequence of rows in someautomated reports. The type determines the account type and can be oneof a contributory account (a conventional account as in traditionalaccounting where account values carry forward from day to day) or anon-contributory account (account values do not carry forward from dayto day). Where appropriate, the account can be represented in a currencyformat or a percentage format by checking the appropriate boxes. Therelations page under the relations tab defines prefixes that are usedwith the account name to create an account ID. Within the relationspage, the account prefix is the prefix used with the account name tocreate the account ID. The direction indicates whether the accountsshould be increased or decreased when used as the output for receivingthe results of object calculations. The parent/child field sets out readonly fields that display the current parent in a chart of accounts forcreated accounts.

[0124]FIG. 17 illustrates a chart of accounts. This defines a hierarchyof accounts. Various fields are identified in the chart of accounts.These include: an ID field for a database index key for a parent-childreference; a parent ID field for a parent account in a hierarchyrelationship; a child ID field for a child account in the hierarchyrelationship; and a contribution mode field indicating if the child'svalues are added to or subtracted from the parent's value.

[0125]FIG. 18 illustrates an object entry window where objects can bedefined. The object name field contains the object name. The object nameis unique. A calculations page (as illustrated in FIG. 18B) under thecalculations tab contains property fields within which the properties toappear in the property page can be defined and a calculations fieldwithin which the actual object calculations can be defined. An inputdetail page (not shown) under the input details tab allows furtherrefinement of the objects property page. For example, the conditionsunder which a prompt is visible can be created, as well as dynamicprompts that change depending on the current context. A criteria page(not shown) under the criteria tab can be used to set appropriatecriteria and associated error messages. A user notes page (not shown)under the user notes tab is where context sensitive help andcategorization can be set. A development notes pare (not shown) underthe developer notes tab can be used for development notes. A childrenpage (not shown) under the children tab can be used to define childrenwhich will automatically be attached to the object when an object isplaced into the model, i.e., when placed onto the timeframe field 54 ofFIG. 3.

[0126]FIG. 18A illustrates the property fields of the calculations pageof the object entry window of FIG. 18 in more detail. The various fieldsillustrated in FIG. 18A are as follows. The ID field contains theproperty to be displayed in the property page. The order field indicatesthe order in which properties are to be displayed. The caption field isa read only field that is displayed in the property page. The defaultfield contains a default value. If the read only box is checked, theuser will not be able to edit this property. If the show box is notchecked, the property is not visible on a property page.

[0127]FIG. 18B and 18C illustrate the bottom section of the calculationspage of FIG. 18 in more detail. The bottom section of the calculationpage includes two sub-pages. A first sub-page page (called thecalculations sub-page) under the calculation tab shown in FIG. 18B isused to define the actual calculation of the calculation engine of theobject. The second page, the calculations options page, under thecalculation options tag shown in FIG. 18C, is where characteristics ofthe calculations are defined.

[0128] In FIG. 18C, the description field contains an internaldescription of the calculation performed by the calculation engine ofthe object. The output account field identifies the account to whichresults are posted. For calculations that create double entries, this isthe accrual account. The C++ code box is checked if the calculation isdefined in terms of C++ code. The equation field contains an equationdefining the actual calculation to be performed by the object. Theresult will be placed in the identified output account. An object canhave multiple calculations with multiple accounts.

[0129] In FIG. 18C, the description field contains the same descriptionas shown in FIG. 18B. Radio buttons are provided for selecting thetiming of when a calculation is effected. For example, a calculation canbe evaluated only once at the beginning of the object, or at the end ofthe object, at some regular intervals within the objects or on specificdates. These options are set by selecting the appropriate radio button.The time dependency of the value can be set by means of the radiobuttons to identify whether the calculation of property values as wellas accounts are to be dependent on time (which is the setting for almostall cases) or independent of time.

[0130]FIG. 19 is a schematic representation of the relationship betweena parent object 220 and one or more child object(s) 240. Each objectincludes a calculation engine 226 defined by the equation in theequation field of the calculation page illustrated in FIGS. 18 and 18B.Each object also includes a property query manager 222 that isresponsive to a query from an external client 250 (for example from areport mechanism) to get a property or value (account) as required bythe query. The property manager is responsible for determining whetherthe query is for property or account values.

[0131] The property query manager 222 references a property manager 224to get a property required by the query. As has already been discussed,an object holds its own properties and copies of the properties of itschildren. These can actually be stored within the object, or could bereferenced from elsewhere by suitable links under the control of theproperty manager 224.

[0132] The property query manager 222 references an account solver 228to get an account value as required by the query. For each calculationthe accounts solver 228 queries the calculating engine 226 to operate onthe properties at the timings defined by the calculations options pageof FIG. 18C to generate the values. The calculating engine 226 isoperable to determine whether the properties required for thecalculation are local to the object or whether they need to be obtainedfrom the parent. If the value is to be queried from the parent, then thevalue is requested from the parent's property manager 224.

[0133] If the query relates to a child account, then the account solver228 queries the children using the children manager 230. The childrenmanager 230 queries each of the children for the account values. Asindicated above, a child of a parent object can obtain the properties ofother children of its parent by referencing the parent. An example ofthis is where, for example, a cost of sales object needs the details ofsales for the parent of the cost of sales object. In this case the salesproperties for the associated sales object can be obtained from theparent object.

[0134] As well as the elements indicated above, an object can includeits own rendering engine to control the display of the object.Alternatively, a separate rendering facility could be provided, with theobject supplying its identity and/or other parameters to the separaterendering engine.

[0135]FIG. 20 summarizes the process involved in creating and operatinga model. In step 280, the user sets object properties, either using thepositioning of the object representations on the timeline, or throughthe data field for a property (otherwise known as the propertyinspector). In step 282, the object stores the properties in theproperty manager 224. In step 284, the user accesses a report view, forexample as illustrated in FIG. 6. In step 286, in response to the useraccessing the report view, the report manager, for example the externalclient 250 of FIG. 19, queries the required values from the objectconcerned, for example the object 220 of FIG. 19.

[0136]FIG. 21 is a flow diagram illustrating the querying of requiredvalues from an object. This querying is illustrated in the context of afinancial application, although it should be appreciated that similarmethods are employed for querying the required values for otherapplications. In step 300, the process starts by an object being queriedfor a value on given duration offset from the beginning of an object. Instep 302, a test is made as to whether the query is for a value storedas a property, or not (i.e., an account). If it is, then in step 304,the property manager 224 of FIG. 19 is queried for the property. In step306, the property manager determines whether the property is setlocally. If it is, then in step 310, the property is obtained from theproperty manager 224. In step 320, a test is made as to whether theproperty is a time-series of numbers, or not. If it is a time-series ofnumbers, then in step 322 the value for the duration offset beingqueried is obtained and control passes to step E 326. If the property isnot a time-series of numbers, then, in step 324, the property value isconverting to floating decimal value and control passes to step E 326.Returning to step 302, if the query is not for a value stored as aproperty, then, in step 328, an account value is to be queried and aquery value is set to 0.0. Control then passes to step 340, which isexpanded in FIG. 21A.

[0137] In FIG. 21A, following step 340, the code forming the calculationengine is executed in step 350. This code implements the equationdefining the functionality of the entity modeled by the objectconcerned. In step 351, a loop is started for each calculation definedfor this object. In step 352, a test is made at to whether thiscalculation generates values for the appropriate account. If this istrue, then in step 354, the test is made whether the account is a cashaccount. If it is, then in step 356, payment/collection terms are usedto calculate a date for calculating a cash value. If, in step 354, theaccount is not a cash account, then, in step 358, a test is made whetherthe account is a holding account. If it is a holding account, then instep 360, payment/collection terms are used to calculate a date forcalculating holding account value. If, in step 358, the account is not aholding account, or following on from steps 356 or 360, a value for agiven query duration is calculated in step 370. The calculated equationvalue is then added to the query value in step 372. If, in step 352, thecalculation does not generate values for an appropriate accounts orfollowing on from step 372, control passes to step 374. If this is theend of the loop, control passes to step 380, otherwise control passesback to step 351. From step 380, control returns to step 340 of FIG. 21.Control then passes from step A 340 to step B 342, which is illustratedin more detail in FIG. 21B.

[0138] As illustrated in FIG. 21B, following step 342, a test is made instep 390 as to whether this query account has any child accounts. If theanswer is yes, then, in step 392, each of the child accounts is loopedthrough. In step 394, a value for the child account is queried. Controlthen passes to step A 396, which is illustrated later in more detail inFIG. 21D. Following step A 396, in step 397, control either passes backto step 342, for recursively querying a child account for value, or itpasses to step 398. In step 398, the query value is increased by thereturned amount. If in step 400, the loop for the child account is notcomplete, control passes back to step 392. When, in step 400, thelooping through the child accounts is complete, or, in step 390, thequery account does not have any child accounts, control passes to step402 for return.

[0139] Following step B 342, control passes to step C 344, which isillustrated in more detail in FIG. 21C.

[0140] In FIG. 21C, following step 344, a test is made as to whether theobject has any children. If the answer is yes, then a loop is startedfor each child object at step 412. In step 414, a value is queried fromthe child object in question. This causes a recursive loop at step 415back to the initial start 300 shown in FIG. 21. Eventually, controlreturns to step 415 and then passes to step 416. In step 416, the queryvalue is incremented. In step 418, if the loop through the child objectsis not complete, control passes back to step 412. If, in step 410, theobject does not have children, or on completion of the loop in step 418,control passes via step C 344 to step F 346.

[0141] As mentioned earlier, step D 308/396 is explained in more detailin FIG. 21D.

[0142] In FIG. 21D, following step 308/396, a test is made in step 430as to whether an object concerned has a parent. If the answer is yes,then in step 432 the parent is queried for the query value. Followingstep 432, control passes to step E, 326, which corresponds to step E 326of FIG. 21. If in step 430, the object concerned does not have a parent,then the query value is set to an undefined value in step 436 andcontrol is returned (step 431) to the calling function (step D 308 orstep D 396).

[0143] Step E 326 is explained in more detail in FIG. 21E. Followingstep 326, a test is made in step 440 as to whether a value is to beconverted on the basis of time. If the answer is no, then in step 442,the query value is set to the property value and control passes to stepF 346. If, however, in step 440 the answer is yes, the object startduration and the object calculation frequency (granularity) are queriedin step 446. In step 448, the start duration, calculation frequency,query offset duration, and property value are used to calculate valuesfor a given object granularity (otherwise known as time-normalizedvalues). The query value is set to the calculated normalized value instep 450, and control passes to step F 346 as illustrated in FIG. 21.Also, following step C 344 in 21, control passes to step F 346. Fromstep F 346, control passes to step 348, where the query value isreturned.

[0144] Thus, the operation of querying an object for a time-normalizedseries of values has been set out in FIGS. 21 to 21E. Using thismechanism, it is possible for the objects to pass properties andtime-series of values, or accounts, between each other in order togenerate an appropriate output for report. Accordingly, reports can begenerated in real time on the basis of the properties supplied to theobjects by means of the data field 58 and/or the timeframe field 54illustrated in FIG. 3.

[0145] The use of objects to form a model of the system or activities tobe modeled provides an extremely flexible and user friendly method ofgenerating a planning system. Each of the objects can comprisepre-defined characteristics appropriate for the class, or type of objectconcerned. Each of these object types can be thought of as representinga planning entity type, with the specific instances of the objectsrepresenting specific planning entities.

[0146] New objects can be created as desired in order to model newclasses of object. As mentioned, the use of the object-based approachmeans that the overall presentation and understandability of theplanning operation is much easier for the user.

[0147] Standard object types could be developed and stored in a library,for example as part of a web-site, and then be downloaded on demand.Alternatively, they could be stored locally, or be packaged with themodeling system. Thus, the objects could be provided on a carriermedium. An object defines the functionality of a planning entity. Itincludes a definition of a time dependent property and a definition oftime-dependent operations configured to respond to input property valuesfor the time-dependent properties to produce a time-series of outputvalues.

[0148] Also, the storage of properties within, or associated withindividual objects, means that many alternative scenarios can beestablished within a single model by the storage of multiple sets ofproperties for each object, or at least selected objects, within themodel. As links are also definable as properties, the flexible linkingof objects is possible. This can all lead to a very flexible system forthe generation of reports for multiple scenarios without a proliferationof models, as would be needed using spreadsheets.

[0149] A further feature of the invention that facilitates the selectionof particular scenario having a given combination of properties forobjects, is the provision of a revision mechanism.

[0150]FIG. 22 is a schematic representation of a revision mechanism. Therevision mechanism 500 can be responsive via the control mechanism 485to any changes made to the model 160. Each change to the model is storedas a revision entry 510. Each revision entry is entered into an acyclicgraph of revision entries 510.1, 511.1, 510.2, 510.3, 510.4, etc.

[0151] Each of those revision entries includes a pointer (PP) 512 to theprevious entry, a pointer (PN) 513 to the next entry, and whereappropriate one or more pointers (PF) 514 to an further entry forconsequential revisions which result from the revision in question(e.g., for the entry 510.1, there is a main link to 510.2, but also asecondary link to 511.1). The entry also includes the object ID (OID)515, the previous value (PV) 516 for a property, the new value (NV) 517of the property after the revision, a current state (CV) indicator 518for the revision (i.e. whether it is currently active or not), anddetails (RD) 519 of the revision concerned and the time the revision wasmade (possibly also by whom). It should be noted that rather thancontaining the previous value for a property, the revision entry couldcontain a definition of the modification effected by the revision. Also,distinct entries can be provided for the addition of new objects, asopposed to the modification of properties for existing objects.

[0152] A table of revisions 520 can be displayed on request by a user,with the table being derived from the graph. The user is able to selecta desired revision from the list to remove that revision from thecurrent state of the model, by deactivating the revision concerned andadjusting the current state indicator, or can reactivate, orreintroduce, a revision which is currently deactivated, as representedby the current state indicator 518 for the revision entry.

[0153] The revision hierarchy is persistent. Accordingly, it readilyenables a particular state of the model to be reconstructed andselective deactivating and activating of individual revisions. As aresult, it is possible readily to establish what was done when and howfor individual revisions. As a result of the links in the hierarchy, anyconsequential changes are automatically accounted for.

[0154] Accordingly, there has been described a planning, or modelingsystem and method which provides a particularly flexible approach to theplanning and modeling of systems with the automatic generation of outputreports defining the results of the properties input to the planningprocess. The outputs of the planning system can be in the form of reportso those result, but could also be used to generate direct output valuesfor controlling processes in response to results as determined.

[0155] In a preferred embodiment of the invention the planning system isimplemented by computer software operable on conventional computinghardware. The computer software could be supplied on a carrier mediumsuch as optical, magnetic or other computer-readable storage medium. Itcould also be supplied over a telecommunications carrier medium such asa telephone or network communications medium, including electricaloptical and electromagnetic (e.g., wireless) telecommunications medium.The computer software could be operable on a stand-alone workstation, orover a network (e.g. a local area network, a wide area network, anintranet or the Internet or indeed any other network) from a serverstation to a client station. The objects could be supplied on or fromany of the media or locations mentioned above. It will be appreciatedthat although in the preferred embodiments, the invention is implementedusing software operable on conventional computer hardware, it will beappreciated that it could be implemented, at least on part, by means ofcomputer special purpose hardware, for example by means of applicationspecific integrated circuits (ASICs).

[0156] Indeed, although particular embodiments of the invention havebeen described, it will be appreciated that many modifications and/oradditions and/or substitutions may be made within the spirit and scopeof the present invention as defined in the appended claims.

What is claimed is:
 1. A computer-implemented modeling system, themodeling system comprising: a graphical user interface mechanismconfigured to display a timeframe on a computer display medium, thegraphical user interface mechanism being further configured selectivelyto display, under user control, a representation of a selectableinstance of at least one component object for a modeled entity, therepresentation of that component object instance as displayed withrespect to the timeframe representing time-related properties for thecomponent object instance; the at least one component object for amodeled entity, the component object comprising a calculating enginedefining the functionality of the modeled entity, the calculating enginebeing configured to respond to the time-related properties for theselected component object instance to perform calculations on at leastone component object property for deriving an output comprising atime-series of output values; and a result mechanism for deriving atleast one result value based on the time-series of output values derivedby the selected component object instance.
 2. The modeling system ofclaim 1, wherein the component object is configured to include aproperty in the form of at least one user definable link to anothercomponent object.
 3. The modeling system of claim 1, wherein a pluralityof user selectable object types are provided, each object type being fora respective modeling entity type and comprising a calculating enginedefining a functionality specific to the respective modeling entitytype.
 4. The modeling system of claim 1, wherein the calculating engineof the component object is configured to perform calculations on atleast one property of that component object.
 5. The modeling system ofclaim 1, wherein the calculating engine of the component object isconfigured to perform calculations on at least one property of anothercomponent object.
 6. The modeling system of claim 1, wherein thetime-series of output values comprises at least one value associatedwith at least one calculation timing.
 7. The modeling system of claim 1,wherein the display of the component object instance with respect to thetimeframe represents at least an adjustable lifespan having a start timeand an end time for the component object.
 8. The modeling system ofclaim 7, wherein the display of the component object instance withrespect to the timeframe further represents at least one calculationdatum point corresponding to a calculation timing for an output value ofthe time-series of output values.
 9. The modeling system of claim 8,wherein the calculating engine is responsive to changes in thepositioning of the displayed instance of the component object to changethe calculation timings for output values of the time-series of outputvalues.
 10. The modeling system of claim 1, wherein the timeframedefines a timeline indicating time values.
 11. The modeling system ofclaim 10, wherein the time values are dates.
 12. The modeling system ofclaim 10, wherein the time values are duration offsets.
 13. The modelingsystem of claim 10, wherein the timeline extends in a first direction,and the timeframe further defines a plurality of spaced object linesparallel to the timeline, a said component object instance being definedin at least one object line.
 14. The modeling system of claim 13,wherein the timeline extends in a row direction, and the object linesdefine separate rows parallel to the timeline.
 15. The modeling systemof claim 13, wherein the orthogonal correspondence between theextremities of a displayed component object instance along an objectline with time values of the timeline represents a start time and an endtime for the component object instance.
 16. The modeling system of claim13, configured to prevent overlapping of at least determined componentobject instances within an object line, whereby determined componentobject instances displayed within an object line have non-overlappinglifespans.
 17. The modeling system of claim 13, configured to defineparent-child relationships between component object instances displayedon respective object lines.
 18. The modeling system of claim 13, whereinthe displayed representation of the at least one component objectinstance is a bar.
 19. The modeling system of claim 18, wherein at leastone marker representing a calculation datum point corresponding to acalculation timing for an output value of the time-series of outputvalues is superimposed on the bar.
 20. The modeling system of claim 13,wherein the displayed representation of the at least one componentobject instance is a series of markers, the markers representingcalculation datum points corresponding to calculation timings forrespective output values of the time-series of output values, themarkers being joined to represent the lifespan of the component objectinstance from a start time to an end time.
 21. The modeling system ofclaim 1, wherein one component object instance is associated with amodeled entity, the component object instance performing a series ofcalculations for respective calculation timings for generating thetime-series of output values.
 22. The modeling system of claim 1,wherein a plurality of component object instances are associated withmodeled entity, each component object instance performing a calculationfor a determined calculation timing for generating one of thetime-series of output values.
 23. The modeling system of claim 1,wherein at least one component object instance includes a link to afurther component object instance for defining a parent-childrelationship.
 24. The modeling system of claim 23, wherein a componentobject instance holds properties of a component object instance which isits child.
 25. The modeling system of claim 23, wherein a componentobject instance is operable to obtain a property from a component objectinstance which is its parent.
 26. The modeling system of claim 23,wherein a component object instance is responsive to a request foroutput from the result mechanism to obtain, from its parent object,properties for calculating an output comprising the time-series ofoutput values, the output values being determined at datum pointsdefined by the time-related properties for the component object.
 27. Themodeling system of claim 23, configured to define a root object with auser defined hierarchy of component objects being dependent therefromfor modeling at least one scenario.
 28. The modeling system of claim 23,wherein relationships between component object instances are representedby displaying links between respective displayed component objectinstances.
 29. The modeling system of claim 23, wherein the graphicaluser interface mechanism is operable to provide selective expansion, orcontraction, of displayed sub-hierarchies of component object instances.30. The modeling system of claim 1, wherein a displayed instance of acomponent object may be selectively enabled and disabled.
 31. Themodeling system of claim 30, wherein the selective enabling anddisabling of a displayed instance of a component object causes enablingand disabling, respectively, of any component object which is adescendent thereof.
 32. The modeling system of claim 1, wherein therepresentation displayed for an object reflects the state of thatobject, as to whether it is in an enabled, disabled, selected, error, orother state.
 33. The modeling system of claim 1, wherein a model may beformed of a plurality of component models, each component modelcomprising one or more component objects.
 34. The modeling system ofclaim 1, wherein at least one property comprises an array of values. 35.The modeling system of claim 1, wherein at least one property issub-divided into sub-properties.
 36. The modeling system of claim 1,wherein the graphical user interface is configured to display aplurality of icons corresponding to user selectable component objecttypes, each component object type being for a respective modeling entitytype and comprising a calculating engine defining a functionalityspecific to the respective modeling entity type, the icons beingselectable by a user for positioning a representation of a componentobject instance with respect to the timeframe.
 37. The modeling systemof claim 1, wherein the graphical user interface is configured todisplay a data field for inputting properties of a component object. 38.The modeling system of claim 1, wherein the properties of a componentobject include at least one property selected from: a value; an array ofvalues; a time-series of values; a state; a Boolean; a string; a timing;a duration; a link; a bit map; and a binary stream.
 39. The modelingsystem of claim 1 wherein the result mechanism comprises at least oneresult object for generating a report including at least output valuebased on at least one time-series of output values derived by at leastone component object instance.
 40. The modeling system of claim 39,wherein the report is displayable.
 41. The modeling system of claim 39,wherein the report is printed on a printer.
 42. The modeling system ofclaim 39, wherein the report is a financial report.
 43. The modelingsystem of claim 39, wherein the result mechanism provides at least onecontrol value for controlling the operation of a modeled system.
 44. Themodeling system of claim 1, operable to model alternative scenarios,wherein the at least one component object is configured to recordrespective properties for plural scenarios.
 45. The modeling system ofclaim 1, further comprising a revision mechanism operable to recordrevisions of the model of a scenario, the revision mechanism beingoperable to define a hierarchy of revision entries.
 46. The modelingsystem of claim 45, wherein a revision entry defines a previous value ofa property and a current value of a property.
 47. The modeling system ofclaim 46, wherein the revision mechanism is configured to be responsiveto selection of a revision of a model, to access the linked series ofrevision entries selectively to remove and to reintroduce the selectedrevision for the current version of the model.
 48. A computer systemcomprising a processor, storage, a display device, at least one userinput device and a program-implemented modeling tool, the modeling toolcomprising: a graphical user interface mechanism configured to display atimeframe on a computer display medium, the graphical user interfacemechanism being further configured selectively to display, under usercontrol, a representation of a selectable instance of at least onecomponent object for a modeled entity, the representation of thatcomponent object instance as displayed with respect to the timeframerepresenting time-related properties for the component object instance;the at least one component object for a modeled entity, the componentobject comprising a calculating engine defining the functionality of themodeled entity, the calculating engine being configured to respond tothe time-related properties for the selected component object instanceto perform calculations on at least one component object property forderiving an output comprising a time-series of output values; and aresult mechanism for deriving at least one result value based on thetime-series of output values derived by the selected component objectinstance.
 49. A carrier medium carrying a computer program-implementedmodeling tool, the modeling tool comprising: graphical user interfaceinstructions configured to display a timeframe on a computer displaymedium, the graphical user interface instructions being furtherconfigured selectively to display, under user control, a representationof a selectable instance of at least one component object for a modeledentity, the representation of that component object instance asdisplayed with respect to the timeframe representing time-relatedproperties for the component object instance; component objectdefinition instructions for defining the at least one component objectfor a modeled entity, the component object comprising a calculatingengine defining the functionality of the modeled entity, the calculatingengine being configured to respond to the time-related properties forthe selected component object instance to perform calculations on atleast one component object property for deriving an output comprising atime-series of output values; and result generation instructions forderiving at least one result value based on the time-series of outputvalues derived by the selected component object instance.
 50. Thecarrier medium of claim 49, wherein the carrier medium is a computerreadable storage medium.
 51. The carrier medium of claim 49, wherein thecarrier medium is a telecommunications medium.
 52. Acomputer-implemented planning system comprising a plurality ofselectable objects types, each object type defining a type of planningentity and including a calculating engine for defining the functionalityof the planning entity, at least a selected one of the object typesincluding definitions of time dependent properties and a calculatingengine operable to perform time-dependent operations in response toproperty values for the time-dependent properties, a control mechanismdefining an object hierarchy in response to user input, which user inputincludes specifications of property values for the time dependentproperties, and for generating outputs in the form of time-series ofvalues in response to calculations performed by the calculating enginesof the objects.
 53. A carrier medium carrying an object definition for acomputer-implemented planning system, the object defining thefunctionality of a planning entity and including a definition of a timedependent property and a definition of time-dependent operationsconfigured to respond to input property values for the time-dependentproperties to produce a time-series of output values.
 54. The carriermedium of claim 53, wherein the carrier medium is a computer readablestorage medium.
 55. The carrier medium of claim 53, wherein the carriermedium is a telecommunications medium.
 56. A revision mechanism for amodeling system, the revision mechanism being configured: to recordrevisions of the model of the scenario including the definition of ahierarchy of revision entries, each revision entry including pointers toadjoining entries in the hierarchy and including a definition of aprevious value of a property and an current value of a property; and inresponse to selection of a revision of the model of the scenario, toaccess the linked series of revision entries selectively to remove andto reintroduce the selected revision for the current version of themodel.
 57. A computer-implemented modeling method, the methodcomprising: displaying a timeframe on a computer display medium;displaying, under user control, a representation of a selectableinstance of at least one component object for a modeled entity, therepresentation of that component object instance as displayed withrespect to the timeframe representing time-related properties for thecomponent object instance; causing the component object to be responsiveto the time-related properties for the component object instance toperform calculations for the modeled entity on component objectproperties for deriving an output comprising a time-series of outputvalues; and producing at least one result value based on the time-seriesof output values derived by at least one component object.
 58. Themethod of claim 57, wherein the component object is configured toinclude a property in the form of at least one user definable link toanother component object.
 59. The method of claim 57, further comprisingdisplaying a plurality of user selectable object types, each object typebeing for respective modeling entity type and being operable to define afunctionality specific to the respective modeling entity type.
 60. Themethod of claim 57, comprising positioning the component object instancewith respect to the timeframe so as to define at least an adjustablelifespan having a start time and an end time for the component object.61. The method of claim 57, comprising displaying at least one marker ata position for defining a calculation datum point corresponding to acalculation timing for an output value of the time-series of outputvalues.
 62. The method of claim 57, wherein the timeframe comprises atimeline extending in a first direction and a plurality of spaced objectlines parallel to the timeline.
 63. The method of claim 62, comprisingthe user specifying a lifespan for a component object by aligning thecomponent object instance on an object line with extremities of theinstance of the component object aligned with points on the timelinecorresponding to the start time and end time for the component object.64. The method of claim 62, comprising displaying at least one marker ata position for defining a calculation datum point corresponding to acalculation timing for an output value of the time-series of outputvalues, the method further including modifying the position of themarker for adjusting the calculation timing for the output value. 65.The method of claim 62, wherein the time-series of output values isdynamically varied in response to adjustments of the positioning of thecomponent object instance with respect to the timeline.
 66. The methodof claim 62, wherein the movement of at least one extremity of aninstance of an object on an object line to a position occupied by aninstance of another object on the object line causes the instance of theother object to be moved to avoid overlapping of adjacent instances ofobjects on an object line.
 67. The method of claim 62, comprising thederivation, under user control, of at least one parent-childrelationship between instances of objects on respective object lines,the method comprising the automatic display of a representation of theparent-child relationship and the modification of the component objectsto reflect the parent child relationship.
 68. The method of claim 67,further comprising a component object responding to a request for outputfrom the result mechanism to obtain, from its parent object, an accountfor calculating an output comprising the time-series of output values,the output values being determined at datum points defined by thetime-related properties for the component object.
 69. The method ofclaim 57, comprising displaying a plurality of predefined object typesfor selection by a user for positioning with respect to the timeframe.70. The method of claim 57, comprising displaying an input field forreceiving input by a user of properties for a component object.
 71. Themethod of claim 57, comprising generating a report including at leastone value derived from at least one time-series of output values. 72.The method of claim 71, comprising displaying the report.
 73. The methodof claim 71, comprising printing the report.
 74. The method of claim 71,comprising exporting the report.
 75. The method of claim 71, wherein thereport is a financial report.
 76. The method of claim 71, comprisingoutputting at least one control value to a modeled system forcontrolling the operation of the modeled system.
 77. The method of claim57, comprising the modeling alternative scenarios, the method includingrecording respective properties for plural scenarios in at least onecomponent object.
 78. The method of claim 57, further comprisingmaintaining a revision record of revisions of the model of a scenario,the revision record including an acyclic graph of revision entries. 79.The method of claim 78, wherein each revision entry defines a revisionstep for a property of a component object.
 80. The method of claim 79,comprising accessing the linked series of revision entries to cause arevision to be deactivated or reactivated for the current model.